<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>trcross</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="OpcodesTop.html" title="Orchestra Opcodes and Operators" />
    <link rel="prev" href="transegr.html" title="transegr" />
    <link rel="next" href="trfilter.html" title="trfilter" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">trcross</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="transegr.html">Prev</a> </td>
          <th width="60%" align="center">Orchestra Opcodes and Operators</th>
          <td width="20%" align="right"> <a accesskey="n" href="trfilter.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry">
      <a id="trcross"></a>
      <div class="titlepage"></div>
      <a id="Indextrcross" class="indexterm"></a>
      <div class="refnamediv">
        <h2>
          <span class="refentrytitle">trcross</span>
        </h2>
        <p>trcross — 
      Streaming partial track cross-synthesis.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp159330208"></a>
        <h2>Description</h2>
        <p>
      The <span class="emphasis"><em>trcross</em></span> opcode takes two inputs containg TRACKS pv streaming signals (as generated,
      for instance by <span class="emphasis"><em>partials</em></span>) and cross-synthesises them into a single TRACKS stream. Two
      different modes of operation are used: mode 0, cross-synthesis by multiplication of
      the amplitudes of the two inputs and mode 1, cross-synthesis by the substititution of
      the amplitudes of input 1 by the input 2. Frequencies and phases of input 1 are preserved
      in the output. The cross-synthesis is done by matching tracks between the two inputs using
      a 'search interval'. The matching algorithm will look for tracks in the second input that 
      are within the search interval around each track in the first input. This interval can be changed
      at the control rate. Wider search intervals will find more matches.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp159333040"></a>
        <h2>Syntax</h2>
        <pre class="synopsis">fsig <span class="command"><strong>trcross</strong></span> fin1, fin2, ksearch, kdepth [, kmode] </pre>
      </div>
      <div class="refsect1">
        <a id="idp159335264"></a>
        <h2>Performance</h2>
        <p>
      <span class="emphasis"><em>fsig</em></span> -- output pv stream in TRACKS format 
    </p>
        <p>
      <span class="emphasis"><em>fin1</em></span> -- first input pv stream in TRACKS format.
    </p>
        <p>
      <span class="emphasis"><em>fin2</em></span> -- second input pv stream in TRACKS format
    </p>
        <p>
      <span class="emphasis"><em>ksearch</em></span> -- search interval ratio, defining a 'search area'
      around each track of 1st input for matching purposes.
    </p>
        <p>
      <span class="emphasis"><em>kdepth</em></span> -- depth of effect (0-1).
    </p>
        <p>
      <span class="emphasis"><em>kmode</em></span> -- mode of cross-synthesis. 0, multiplication
      of amplitudes (filtering), 1, subsitution of amplitudes of input 1 by
      input 2 (akin to vocoding). Defaults to 0.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp159341424"></a>
        <h2>Examples</h2>
        <p>
      Here is an example of the trcross opcode. It uses the file <a class="ulink" href="examples/trcross.csd" target="_top"><em class="citetitle">trcross.csd</em></a>.
      </p>
        <div class="example">
          <a id="idp159343216"></a>
          <p class="title">
            <strong>Example 942. Example of the trcross opcode.</strong>
          </p>
          <div class="example-contents">
            <p>See the sections <a class="link" href="UsingRealTime.html" title="Real-Time Audio"><em class="citetitle">Real-time Audio</em></a> and <a class="link" href="CommandFlags.html" title="Csound command line"><em class="citetitle">Command Line Flags</em></a> for more information on using command line flags.</p>
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
-odac     <span class="comment">;;;realtime audio out</span>
<span class="comment">;-iadc    ;;;uncomment -iadc if realtime audio input is needed too</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o trcross.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="ohdr">sr</span> <span class="op">=</span> 44100
<span class="ohdr">ksmps</span> <span class="op">=</span> 32
<span class="ohdr">nchnls</span> <span class="op">=</span> 2
<span class="ohdr">0dbfs</span>  <span class="op">=</span> 1

<span class="oblock">instr</span> 1

ain1 <span class="opc">diskin2</span> "beats.wav", 1, 0, 1
ain2 <span class="opc">diskin2</span> "fox.wav", 1

imode <span class="op">=</span> p4
fs1,fsi2 <span class="opc">pvsifd</span> ain1, 2048, 512, 1		<span class="comment">; ifd analysis</span>
fst      <span class="opc">partials</span> fs1, fsi2, .01, 1, 3, 500	<span class="comment">; partial tracking</span>

fs11,fsi12 <span class="opc">pvsifd</span> ain2, 2048, 512, 1		<span class="comment">; ifd analysis (second input)</span>
fst1     <span class="opc">partials</span> fs11, fsi12, .01, 1, 3, 500	<span class="comment">; partial tracking (second input</span>

fcr  <span class="opc">trcross</span> fst, fst1, 1.05, 1, imode		<span class="comment">; cross-synthesis (mode 0 and mode 1)</span>
aout <span class="opc">tradsyn</span> fcr, 1, 1, 500, 1			<span class="comment">; resynthesis of tracks</span>
     <span class="opc">outs</span> aout<span class="op">*</span>3, aout<span class="op">*</span>3

<span class="oblock">endin</span>
<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>
<span class="stamnt">f</span>1 0 8192 10 1

<span class="stamnt">i</span> 1 0 3 0
<span class="stamnt">i</span> 1 5 3 1

<span class="stamnt">e</span>
<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
        <p>
      The example above shows partial tracking of two ifd-analysis signals, cross-synthesis, 
      followed by the remix of the two parts of the spectrum and resynthesis. 
    </p>
      </div>
      <div class="refsect1">
        <a id="idp159348080"></a>
        <h2>Credits</h2>
        <p>
      </p>
        <table border="0" summary="Simple list" class="simplelist">
          <tr>
            <td>Author: Victor Lazzarini</td>
          </tr>
          <tr>
            <td>February 2006 </td>
          </tr>
        </table>
        <p>
    </p>
        <p>New in Csound 5.01</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="transegr.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="OpcodesTop.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="trfilter.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">transegr </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> trfilter</td>
        </tr>
      </table>
    </div>
  </body>
</html>
